import { IPSDELogicNode } from './ipsdelogic-node';
import { IPSDELogicParam } from './ipsdelogic-param';

/**
 *
 * 继承父接口类型值[COPYPARAM]
 * @export
 * @interface IPSDECopyParamLogic
 */
export interface IPSDECopyParamLogic extends IPSDELogicNode {
  getCopyFields(): string[] | null;

  get copyFields(): string[] | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get dstPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 目标逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getDstPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 源逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  getSrcPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 源逻辑参数对象
   *
   * @type {IPSDELogicParam}
   */
  get srcPSDELogicParam(): IPSDELogicParam | null;

  /**
   * 源逻辑参数对象（必须存在）
   *
   * @type {IPSDELogicParam}
   */
  getSrcPSDELogicParamMust(): IPSDELogicParam;

  /**
   * 仅拷贝不存在属性
   * @type {boolean}
   * @default false
   */
  copyIfNotExists: boolean;
}
